<html>
<head>
<title>Remake de Fruity Frank - Version 0.14</title>
<style type="text/css">
span {
	font-family: 'Courier New';
	font-size: 10pt;
	color: #000000;
}
.SpanClass0 {
	color: #808080;
}
.SpanClass3 {
	color: #008080;
}
.SpanClass5 {
	font-weight: bold;
	color: #0000FF;
}
.SpanClass7 {
	color: #808080;
}
.SpanClass10 {
	font-weight: bold;
	color: #000080;
}
.SpanClass11 {
}
</style>
</head>
<body bgcolor="#FFFFFF">
<h2>Remake (parcial) de Fruity Frank... 14 - Movimiento animado</h2>
<p align="right">(Volver al <a href="doc.html">&iacute;ndice</a>) </p>

<p>Nuestro personaje ya cambia de forma: seg&uacute;n si nos movemos hacia la derecha, la izquierda o arriba/abajo, muestra una imagen distinta. Ahora vamos a hacer que cambie ligeramente de forma mientras se mueve en una misma direcci&oacute;n.</p>

<p>Existen varias formas de hacerlo.</p>

<p>Una forma podr&iacute;a ser basarnos en su coordenada X (por ejemplo), de modo que si X es par, se muestre una imagen, y si X es impar, se muestre otra forma distinta. Esto tiene inconvenientes. Por ejemplo, si el incremento con el que se mueve nuestro personaje es 2, siempre se ver&iacute;a la misma imagen.</p>

<p>Otra forma m&aacute;s eficiente podr&iacute;a ser llevar cuenta de qu&eacute; imagen acabamos de dibujar. Por ejemplo, tener dos im&aacute;genes &quot;derecha1&quot; y &quot;derecha2&quot; de nuestro personaje movi&eacute;ndose a la derecha. Si la &uacute;ltima que hemos dibujado es &quot;derecha1&quot;, la siguiente que toca es &quot;derecha2&quot; y viceversa. Se podr&iacute;a conseguir as&iacute;:</p>

<pre><code>if ( TeclaPulsada (TECLA_DER) )
{
  if ((xPersonaje &lt; MAXCOLS-1)
      &amp;&amp; (mapa1[yPersonaje][xPersonaje+1] != 'M'))
  {
    xPersonaje ++;
    // Alterno entre dos imagenes a la derecha
    if (posicion == DERECHA1) 
    {
      personaje = personajeD;
      posicion = DERECHA2;
    }
    else
    {
      personaje = personajeD2;
      posicion = DERECHA1;
    }
  }
}</code></pre>

<p>En ese ejemplo, DERECHA1 y DERECHA2 podr&iacute;an ser constantes simb&oacute;licas, con valores 1 y 2, respectivamente.</p>

<p>Si tenemos m&aacute;s de dos &quot;fotogramas&quot; de nuestro personaje, podemos hacer que &quot;posici&oacute;n&quot; tome m&aacute;s valores, por ejemplo de 0 a 5 (si tenemos 6 fotogramas en cada direcci&oacute;n), y guardar las im&aacute;genes en un array, y entonces har&iacute;amos:</p>

<pre><code>    // La posicion va rotando
    posicion ++;
    if (posicion == DERECHA5) 
      posicion = DERECHA0; 
    personaje = imagenPersonaje[posicion];</code></pre>

<p>De la misma forma, podr&iacute;amos hacer que hubiera animaciones en cada una de las posibles direcciones del movimiento, o en el movimiento de los enemigos.</p>


<p>Para m&aacute;s detalles, puedes ojear todo el proyecto en: <a href="http://code.google.com/p/fruityfrank"> code.google.com/p/fruityfrank</a></p>
<p align="right">(Volver al <a href="doc.html">&iacute;ndice</a>) </p>
</body>
</html>
